home *** CD-ROM | disk | FTP | other *** search
/ Sun Solutions 1997 April to September / Sun Solutions CD - APR '97 - SEP '97 (704-3778-12 Rev. H)(Sun Microsystems, Inc.)(1997).iso / products / bin / updatemar97.pl < prev   
Perl Script  |  1997-01-29  |  40KB  |  1,142 lines

  1. #!/net/cdware/export/home/cdware/lab/bin/perl 
  2. # ------------------------------------------------------------
  3.  
  4. # update.pl, by Jean-Pierre Girard (jpg@corrado.sun.com)
  5. # This allows the user to edit or create the _info file
  6. # necessary for the SunSolutions.
  7. # version 1.0, Feb, 20 1996
  8. # ------------------------------------------------------------
  9.  
  10. # Bugs and other fixes
  11.  
  12. # ------------------------------------------------------------
  13. %Special = (
  14. "internet", "596,200"
  15. ,"Sun", "596,167"
  16. );
  17. #
  18. # Below are fields delimited by ^.
  19. # field 1: Full category name
  20. # field 2: Category image name
  21. # field 3: Category header height (if other than default)
  22. # field 4: Banner Ad Yes/No (Yes source= Company Dir/ad/ad.htm)
  23. # field 5:
  24. #
  25. %MainCat = (
  26. "access", "Internet Access^intacc.gif^"
  27. , "service", "Services for the Internet^intserv.gif^"
  28. , "commerce", "Internet Commerce^intcomm.gif^"
  29. , "publishing", "Internet Publishing^intpub.gif^"
  30. , "intsecurity", "Internet Security^intsec.gif^"
  31. #Added Specifically for March 97 Issue
  32. , "intauth", "Internet Authoring/Java^intauth.gif^"
  33. , "intcontmgt", "Internet Content Management^intcontmgt.gif^"
  34. , "intdbconn", "Internet Database Connectivity^intdbconn.gif^"
  35. , "intemail", "Internet Email^intemail.gif^"
  36. , "intgrpware", "Internet Groupware/Document Flow^intgrpware.gif^"
  37. , "intoffprod", "Internet Office Productivity^intoffprod.gif^"
  38. , "intprodauth", "Internet Production/Authoring^intprodauth.gif^"
  39. , "intsrcheng", "Internet Search Engines^intsrcheng.gif^"
  40. , "intstemgt", "Internet Site Management^intstemgt.gif^"
  41. , "intswdev", "Internet Software Development Tools^intswdev.gif^"
  42. , "intwebad", "Internet Web Advertising^intwebad.gif^"
  43. , "intwebcms", "Internet Web CMS^intwebcms.gif^"
  44. , "intwebdw", "Internet Web Datawarehouse^intwebdw.gif^"
  45. , "intwebmon", "Internet Web Monitoring^intwebmon.gif^"
  46. , "intwebserv", "Internet Web Server^intwebserv.gif^"
  47. , "intwebste", "Internet Web Site^intwebste.gif^"
  48. , "intwebvideo", "Internet Web Video^intwebvideo.gif^"
  49. , "intwebvoice", "Internet Web Voice^intwebvoice.gif^"
  50. #Main Categories from March 97 front GUI
  51. , "Hardware", "^hard.gif^"
  52. , "Services", "^serv.gif^"
  53. , "companies", "^comps.gif^"
  54. , "Sun", "Search Sun Products <form method=get ACTION=http://localhost:7999/cgi-bin/brandnewwais.pl/wais_SunSolutions></font><input type=text name=isindex size=15>^sprods.gif^"
  55. #These are Software subs
  56. ,"archive", "Archiving, Storage Management & Backup Solutions^sstormn.gif^"
  57. ,"business", "Business Solutions^sbizsol.gif^"
  58. , "cad_cae", "Computer Aided Design/Engineering^scade.gif^"
  59. , "catalogs", "Catalogs^scata.gif^"
  60. , "client_server", "Client/Server Solutions^sclnt.gif^"
  61. , "desktop_apps", "Desktop Applications^sdesk.gif^220^yes"
  62. , "diag_flow", "Diagramming and Flowcharting^sdiaflo.gif^"
  63. , "doc_mgt", "Document Management^sdocmn.gif^"
  64. , "epubs", "Electronic Publishing^selecpb.gif^"
  65. , "graphics_imaging", "Graphics and Imaging^sgfximg.gif^"
  66. , "info_mgt", "Information Management^sinfomn.gif^220^yes"
  67. , "multimedia", "Multimedia^smulti.gif^"
  68. , "networking", "Networking^snetwk.gif^"
  69. , "security", "Security^ssecu.gif^"
  70. , "sw_eng", "Software Engineering^ssfteng.gif^"
  71. , "sys_admin", "System Administration^ssysad.gif^"
  72. , "telco", "Telecommunications^stelco.gif^"
  73. , "training", "Training^strain.gif^"
  74. #Added for March 97 Issue
  75. , "financial", "Financial Services^financial.gif^220^yes"
  76. , "utilities", "Utilities^utilities.gif^220^yes"
  77. );
  78.  
  79. ##############################################################################
  80. # getField 
  81. ##############################################################################
  82.  
  83. sub getField
  84. {
  85. local($string1, $string2) = @_;
  86. $count=0;
  87. $string1 =~ s/\^/\n/g;
  88. @elements = split(/\n/, $string1);
  89.   foreach $item (@elements) {
  90.   $count++;
  91.     if ($count eq $string2) {
  92.     $return=$item;
  93.     }
  94.     if ($string2 < 1 | $string2 > $count ) {
  95.         $return = "Invalid Field number";
  96.     }
  97.   }  
  98.   $return;
  99. }
  100.  
  101. ##############################################################################
  102. # PrintHtml:
  103. ##############################################################################
  104. sub PrintHtml
  105. {
  106.     local($StrHtml1, $Str, $StrHtml2) = @_;
  107.     
  108.     if ($HTML_FORMAT eq "true") {
  109.         print STDOUT $StrHtml1;
  110.     }
  111.  
  112.     print STDOUT $Str;
  113.  
  114.     if ($HTML_FORMAT eq "true") {
  115.         print STDOUT $StrHtml2;
  116.     }
  117. }
  118. ##############################################################################
  119. # CheckLinks:
  120. ##############################################################################
  121. sub CheckLinks
  122. {
  123.     &PrintHtml("<BR>", "\nChecking links1...\n", "<BR>");
  124.     $ListDir = `cd $PRODUCTS_DIR; ls`;
  125.     $ListDir =~ s/gui|SunSolutions|DEV|hotjava|tempjas|temp//g;
  126.     #$ListDir =~ s/\n+/ /g;
  127.     @dirfields = split(/\s+/, $ListDir);
  128.     foreach $Dir (@dirfields) {
  129.         if ($Dir =~ /SunSolutions|DEV/) {
  130.             next;
  131.         }
  132.         &PrintHtml("<DD><DD>",  "\t\tTesting $Dir ...\n", "<BR>");
  133.         $ListFiles = `find "$PRODUCTS_DIR/$Dir" -name "*.html" -print`;
  134.         $ListFiles .= `find "$PRODUCTS_DIR/$Dir" -name "*.htm" -print`;
  135.         #$ListDir =~ s/gui|SunSolutions|DEV|hotjava|tempjas|temp//g;
  136.         @filefields = split(/\s+/, $ListFiles);
  137.         foreach $File (@filefields) {
  138.             if ($File =~ /SunSolutions.(frame|head).html/) {
  139.                 next;
  140.             }
  141.             #&PrintHtml("<DD><DD>",  "\t\tTesting $File ...\n", "<BR>");
  142.             if (open (HTMLFILE, $File)) {
  143.                 while(<HTMLFILE>) {
  144.                     chop;
  145.                     $Line = $_;
  146.                     $LinePrint = $Line;
  147.                     if ($HTML_FORMAT eq "true") {
  148.                         $LinePrint =~ s/</</g;
  149.                         $LinePrint =~ s/>/>/g;
  150.                     }
  151.                     if ($Line =~ /HREF/i) {
  152.                         $Ref = $Line;
  153.                         $Ref =~ s/.*HREF *= *"?([^" >#]*)[" >#].*/\1/i;
  154.                         if ($Ref =~ /HrefButtonArea/) {
  155.                             $Ref =~ s/.*HrefButtonArea,\d+,\d+,\d+,\d+,([^" >]*)/\1/;
  156.                         }
  157.                         #print "\t$Line\n\t->$Ref\n";
  158.                         if ($Ref eq $Line) {
  159.                             &PrintHtml("<B>",  "ERROR: Bug? in update.pl. File=$File\n", "</B><BR>");
  160.                             &PrintHtml("<DD>",  "\t$LinePrint\n\t->$Ref\n", "<BR>");
  161.                         }
  162.                         if ($Ref eq "" && $Line !~ /HREF *= *"?\#/i) {
  163.                             &PrintHtml("<B>",  "ERROR: Bug? in update.pl. File=$File\n", "</B><BR>");
  164.                             &PrintHtml("<DD>",  "\t$LinePrint\n\t->$Ref\n", "<BR>");
  165.                         }
  166.                         if ($Ref !~ /mailto:|ftp:|http:\/\/|req_more_info.pl/i || $Ref =~ /http:\/\/localhost/) {
  167.                         #if ($Ref !~ /mailto:|ftp:|http:\/\/[^l]|req_more_info.pl/i) {
  168.                             #print "->$Ref\n";
  169.                             $ShortDir = $File;
  170.                             $ShortDir =~ s?(.*\/)[^/]*$?\1?;
  171.                             if ($Ref =~ /http:\/\/localhost/i) {
  172.                                 $Ref =~ s?http://localhost:7999/(.*)$?$PRODUCTS_DIR/\1?;
  173.                                 #print "\t\tin http:$ShortDir/$Ref from $File\n";
  174.                                 if ($Ref !~ /cgi-bin/ && ! -s "$ShortDir/$Ref") {
  175.                                     &PrintHtml("<B>", "ERROR: Missing link $Ref from $File. Line = $LinePrint\n", "</B><BR>");
  176.                                 }
  177.                             } elsif ($Ref =~ /file:/i) {
  178.                                 $Ref =~ s?http://localhost:7999/(.*)$?$PRODUCTS_DIR/\1?;
  179.                                 #print "\t\tin file: $Ref from $File\n";
  180.                                 unless (-s "$Ref") {
  181.                                     &PrintHtml("<B>", "ERROR: Missing link $Ref from $File. Line = $LinePrint\n", "</B><BR>");
  182.                                 }
  183.                             } else {
  184.                                 #print "\t\tin else: $ShortDir/$Ref from $File\n";
  185.                                 if ($Ref !~ /^#/) {
  186.                                     unless ($Ref !~ /^#/ && -s "$ShortDir/$Ref") {
  187.                                         &PrintHtml("<B>", "ERROR: Missing link $Ref from $File. Line = $LinePrint\n", "</B><BR>");
  188.                                     }
  189.                                 }
  190.                             }
  191.                         }
  192.                         
  193.                     }
  194.                     if ($Line =~ /<IMG/i) {
  195.                         $Ref = $Line;
  196.                         $Ref =~ s/.*IMG.*SRC *= *"?([^" >]*)[" >].*/\1/i;
  197.                         #print "\t$Line\n\t->$Ref\n";
  198.                         if ($Ref eq $Line) {
  199.                             &PrintHtml("<B>",  "ERROR: Bug? in update.pl. File=$File\n", "</B><BR>");
  200.                             &PrintHtml("<DD>",  "\t$LinePrint\n\t->$Ref\n", "<BR>");
  201.                         }
  202.                         if ($Ref eq "") {
  203.                             &PrintHtml("<B>",  "ERROR: Bug? in update.pl. File=$File\n", "</B><BR>");
  204.                             &PrintHtml("<DD>",  "\t$LinePrint\n\t->$Ref\n", "<BR>");
  205.                         }
  206.                         #print "->$Ref\n";
  207.                         $ShortDir = $File;
  208.                         $ShortDir =~ s?(.*\/)[^/]*$?\1?;
  209.                         if ($Ref =~ /http:\/\/localhost/i) {
  210.                             $Ref =~ s?http://localhost:7999/(.*)$?$PRODUCTS_DIR/\1?;
  211.                             #print "\t\tin http:$ShortDir/$Ref from $File\n";
  212.                             if ($Ref !~ /cgi-bin/ && ! -s "$ShortDir/$Ref") {
  213.                                 &PrintHtml("<B>", "ERROR: Missing image $Ref from $File. Line = $LinePrint\n", "</B><BR>");
  214.                             }
  215.                         } elsif ($Ref =~ /file:/i) {
  216.                             $Ref =~ s?http://localhost:7999/(.*)$?$PRODUCTS_DIR/\1?;
  217.                             #print "\t\tin file: $Ref from $File\n";
  218.                             unless (-s "$Ref") {
  219.                                 &PrintHtml("<B>", "ERROR: Missing image $Ref from $File. Line = $LinePrint\n", "</B><BR>");
  220.                             }
  221.                         } else {
  222.                             #print "\t\tin else: $ShortDir/$Ref from $File\n";
  223.                             if ($Ref !~ /^#/) {
  224.                                 unless ($Ref !~ /^#/ && -s "$ShortDir/$Ref") {
  225.                                     &PrintHtml("<B>", "ERROR: Missing image $Ref from $File. Line = $LinePrint\n", "</B><BR>");
  226.                                 }
  227.                             }
  228.                         }
  229.                         
  230.                     }
  231.                     #$Line =~ tr/
  232.                 }
  233.                 close(HTMLFILE);
  234.             } else {
  235.                 &PrintHtml("<B>",  "ERROR: $File cannot be open\n", "</B><BR>");
  236.             }
  237.         }
  238.     }
  239. }
  240. ##############################################################################
  241. # CheckFiles:
  242. ##############################################################################
  243. sub CheckFiles
  244. {
  245.     $ListDir = `cd $PRODUCTS_DIR; ls`;
  246.     $ListDir =~ s/gui|SunSolutions|DEV|hotjava|tempjas|temp//g;
  247.     #$ListDir =~ s/\n+/ /g;
  248.     @filefields = split(/\s+/, $ListDir);
  249.     foreach $Dir (@filefields) {
  250.         unless (-s "$PRODUCTS_DIR/$Dir/_info") {
  251.             &PrintHtml("", "WARNING: _info file missing in $Dir\n", "<BR>");
  252.         }
  253.     }
  254.     #print $ListDir;
  255. }
  256.  
  257. ##############################################################################
  258. # InitCompInfo:
  259. ##############################################################################
  260. sub InitCompInfo
  261. {
  262.     #$ListDir = `ls $PRODUCTS_DIR/[CD]*/_info`;
  263.     $ListDir = `ls $PRODUCTS_DIR/*/_info`;
  264.     #print "ls $PRODUCTS_DIR/*/_info";
  265.  
  266.     @filefields = split(/\s+/, $ListDir);
  267.     #print $filefields;
  268.     foreach $INFOFILENAME (@filefields) {
  269.         $ShortDir = $INFOFILENAME;
  270.         $ShortDir =~ s?.*/([^/]*)/_info$?\1?;
  271.         if (-l "$PRODUCTS_DIR/$ShortDir") {
  272.             next;
  273.         }
  274.         if (-s $INFOFILENAME && open (INFOFILE, $INFOFILENAME)) {
  275.             if ($REPORT ne "true") {
  276.                 #&PrintHtml("<DD><DD>", "\t\tReading $INFOFILENAME\n", "<BR>");
  277.             }
  278.     
  279.                     while (<INFOFILE>) {
  280.                         $Line = $_;
  281.                 unless ($Line =~ /^[     ]*$/ || $Line =~ /^#/) {
  282.                     last;
  283.                 }
  284.             }
  285.                     ($Companies{$ShortDir}, $Description{$ShortDir}, $Platform{$ShortDir}, $ChosenCat{$ShortDir}, $WebSite{$ShortDir}, $Email{$ShortDir}, $HomePageName{$ShortDir}) = split(/\^/, $Line);
  286.  
  287.             if ($CHECK eq "true") {
  288.                 $_ = $Line;
  289.                 #print "Line=$Line\n";
  290.                 $count = tr/^//;
  291.                 #print "$_: $count\n";
  292.                 if ($count != 7) {
  293.                     &PrintHtml("<B>", "ERROR: Not the correct number of parameters in the first line of $INFOFILENAME\n", "<BR>");
  294.                 }
  295.                 if ($Platform{$ShortDir} =~ /demo|testdrive|install/ && ! -d "$PRODUCTS_DIR/$ShortDir/_install") {
  296.                     &PrintHtml("<B>", "ERROR: Missing _install directory in $ShortDir\n", "<BR>");
  297.                 }
  298.                 if ($HomePageName{$ShortDir} eq "") {
  299.                     &PrintHtml("<B>", "ERROR: Missing Home page name in $ShortDir\n", "<BR>");
  300.                 } else {
  301.                     unless (-s "$PRODUCTS_DIR/$ShortDir/$HomePageName{$ShortDir}") {
  302.                         &PrintHtml("<B>", "ERROR: $HomePageName{$ShortDir} file missing in $ShortDir\n", "<BR>");
  303.                     }
  304.                 }
  305.             }
  306.             $ProdNum = 1;
  307.                     while (<INFOFILE>) {
  308.                 if ($_ =~ /^[     ]*$/ || $_ =~ /^#/) {
  309.                     next;
  310.                 }
  311.                 if ($CHECK eq "true") {
  312.                     unless ($_ =~ /^.*[^     ].*\^$/) {
  313.                         chop($_);
  314.                         &PrintHtml("<B>", "ERROR: Wrong line in $INFOFILENAME: \"$_\"\n", "<BR>");
  315.                     }
  316.                 }
  317.                             $Product=$_;
  318.                             chop($Product);
  319.                             chop($Product);
  320.                             $Products{$ShortDir . $ProdNum} = $Product;
  321.                 #print "jp = $Product\n";
  322.                 $ProdNum++;
  323.                     }
  324.             close(INFOFILE);
  325.             } else {
  326.                     &PrintHtml("", "Can't open $INFOFILENAME\n", "<BR>");
  327.         }
  328.     }
  329.     #foreach $ShortDir (sort keys(%Companies)) {
  330.         #print "$Companies{$ShortDir}, $Description{$ShortDir}, $Platform{$ShortDir}, $ChosenCat{$ShortDir}, $WebSite{$ShortDir}, $Email{$ShortDir}, $HomePageName{$ShortDir}\n";
  331.     #}
  332.     #%RevComp = reverse %Companies;
  333.     #if (@RevComp != @Companies) {
  334.         #print "WARNING: two directory with the same company name->possible problem!\n";
  335.     #}
  336.     %RevProd = reverse %Products;
  337.     if (@RevProd != @Products) {
  338.         &PrintHtml("", "WARNING: two products with the same name->possible problem!\n", "<BR>");
  339.     }
  340.     #print @Products;
  341.     foreach $ShortDir (sort keys(%Products)) {
  342.         print "$ShortDir, $Products{$ShortDir}\n";
  343.     }
  344.     #foreach $ShortDir (sort keys(%RevProd)) {
  345.         #print "$ShortDir, $RevProd{$ShortDir}\n";
  346.     #}
  347.     #foreach $ShortDir (sort keys(%RevComp)) {
  348.         #print "$RevComp{ShortDir}\n";
  349.     #}
  350.     #print %RevComp;
  351. }
  352.  
  353. sub FilteredSortCat
  354. {
  355.     ($al = &getField($MainCat{$a}, "1")) =~ tr/A-Z/a-z/;
  356.     $al =~ s/^the //;
  357.     $al =~ s/^\.//;
  358.     $al =~ s/^[     ]*//;
  359.  
  360.     ($bl = &getField($MainCat{$b}, "1")) =~ tr/A-Z/a-z/;
  361.     $bl =~ s/^the //;
  362.     $bl =~ s/^\.//;
  363.     $bl =~ s/^[     ]*//;
  364.  
  365.     $al cmp $bl;
  366. }
  367. sub FilteredSort
  368. {
  369.     ($al = $a) =~ tr/A-Z/a-z/;
  370.     $al =~ s/^the //;
  371.     $al =~ s/^\.//;
  372.     $al =~ s/^[     ]*//;
  373.  
  374.     ($bl = $b) =~ tr/A-Z/a-z/;
  375.     $bl =~ s/^the //;
  376.     $bl =~ s/^\.//;
  377.     $bl =~ s/^[     ]*//;
  378.  
  379.     $al cmp $bl;
  380. }
  381. sub FilteredSortComp
  382. {
  383.     $al = $Companies{$a};
  384.     $al =~ tr/A-Z/a-z/;
  385.     $al =~ s/^the //;
  386.     $al =~ s/^\.//;
  387.     $al =~ s/^[     ]*//;
  388.  
  389.     $bl = $Companies{$b};
  390.     $bl =~ tr/A-Z/a-z/;
  391.     $bl =~ s/^the //;
  392.     $bl =~ s/^\.//;
  393.     $bl =~ s/^[     ]*//;
  394.  
  395.     #print STDOUT "$al =? $bl\n";
  396.     $al cmp $bl;
  397. }
  398.  
  399. ##############################################################################
  400. # CreateSoft
  401. ##############################################################################
  402. sub CreateSoft
  403. {
  404.     &PrintHtml("<BR>", "\nCreating Software page...\n", "<BR>");
  405.     $SOFTFILENAME = "$CAT_DIR/Software.html";
  406.     $SOFTHEADFILENAME = "$CAT_DIR/Software.head.html";
  407.     if (open (SOFTFILE, "> $SOFTFILENAME") && open(SOFTHEADFILE, "> $SOFTHEADFILENAME")) {
  408.         $old = select(SOFTHEADFILE);
  409.         $~ = "SOFTWAREHEAD"; 
  410.         write SOFTHEADFILE;   
  411.         close (SOFTHEADFILE); 
  412.  
  413.         select(SOFTFILE);
  414.         $~ = "CATBEGIN";
  415.         write SOFTFILE;
  416.  
  417.         $Letter = "0";
  418.         foreach $Cat (sort FilteredSortCat keys(%MainCat)) {
  419.             unless ( &getField($MainCat{$Cat}, "1") eq "") {
  420.                 $CatAb = &getField($MainCat{$Cat}, "1");
  421.                 $CatAb =~ tr/a-z/A-Z/;
  422.                 $CatAb =~ s/^THE //;
  423.                 $CatAb =~ s/^\.//;
  424.                 #print STDOUT "$CatAb, $Letter\n";
  425.                 unless ($CatAb =~ /^$Letter/) {
  426.                     $Letter = substr($CatAb, 0, 1);
  427.                     print SOFTFILE "<DT><A NAME=\"$Letter\"><B>$Letter</B></A>";
  428.                     #push (@Letters, $Letter);
  429.  
  430.                 }
  431.                   #height of each category head, default 150            
  432.                     if (&getField($MainCat{$Cat}, "3") == "") {
  433.                      $height = "150";
  434.                 } else {
  435.                      $height = &getField($MainCat{$catword}, "3");
  436.                 }    
  437.                     $CG = &getField($MainCat{$Cat}, "1");    
  438.                 print SOFTFILE "<DD><a href=\"http://localhost:7999/cgi-bin/show.bat/?DEST=$Cat&SIZE=$height\"><B>$CG</B></a><br>\n";
  439.             }
  440.         }
  441.         $~ = "CATEND";
  442.         write SOFTFILE;
  443.  
  444.         close (SOFTFILE);
  445.         select($old);
  446.     }
  447.     &PrintHtml("<DD>", "\tSoftware.html page created.\n", "<BR>");
  448. }
  449.  
  450. ##############################################################################
  451. # CreateCat: 
  452. ##############################################################################
  453. sub CreateCat
  454. {
  455.  
  456.     foreach $catword  ( sort keys(%MainCat)) {
  457.         #chop $catword;
  458.         &PrintHtml("<BR>", "\nCreating $catword category page ...\n", "<BR>");
  459.              $CATFILENAME = "$CAT_DIR/$catword.html";
  460.              $CATHEADFILENAME = "$CAT_DIR/$catword.head.html";
  461.         #print STDOUT "Bef open, $CATFILENAME, $CATHEADFILENAME\n";
  462.         if (open (CATFILE, "> $CATFILENAME") && open(CATHEADFILE, "> $CATHEADFILENAME")) {
  463.             $old = select(CATFILE);
  464.  
  465.             $~ = "CATBEGIN";
  466.             write CATFILE;
  467.             $Letter = "0";
  468.             @Letters = ();
  469.             foreach $ShortName (sort FilteredSortComp keys(%Companies)) {
  470.                 $Comp = $Companies{$ShortName};
  471.                 #print STDOUT "$ShortName, $Comp\n";
  472.                 
  473.                 unless ($ChosenCat{$ShortName} =~ /$catword/ 
  474.                     || $catword eq "companies") {
  475.                     next;
  476.                 }
  477.                 $CompAb = $Comp;
  478.                 $CompAb =~ tr/a-z/A-Z/;
  479.                 $CompAb =~ s/^THE //;
  480.                 $CompAb =~ s/^\.//;
  481.                 unless ($CompAb =~ /^$Letter/) {
  482.                     $Letter = substr($CompAb, 0, 1);
  483.                     print CATFILE "<DT><A NAME=\"$Letter\"><B>$Letter</B></A>";
  484.                     push (@Letters, $Letter);
  485.                 }
  486.  
  487.                     #print CATFILE "     <DD><a HREF=http://localhost:7999/$ShortName/$HomePageName{$ShortName}><B>$Comp</B></a> $Description{$ShortName}\n";
  488.                     print CATFILE "     <DD><a HREF=http://localhost:7999/$ShortName/$FRAMEBASICNAME><B>$Comp</B></a> $Description{$ShortName}\n";
  489.                                 print "<dd><b><i>", $Products{$ShortName . "1"}, "</i></b>\n" ;                             
  490.                                 if ($Products{$ShortName . "2"} ne "") {
  491.                                         print ", <b><i>", $Products{$ShortName . "2"}, "</i></b>\n" ;
  492.                                 }
  493.                                 if ($Products{$ShortName . "3"} ne "") {
  494.                                         print ", <b><i>", $Products{$ShortName . "3"}, "</i></b>\n" ;
  495.                                 }
  496.                                 if ($Products{$ShortName . "4"} ne "") {
  497.                                         print ", <b><i>", $Products{$ShortName . "4"}, "</i></b>\n" ;
  498.                                 }
  499.                                 if ($Products{$ShortName . "5"} ne "") {
  500.                                         print ", <b><i>", $Products{$ShortName . "5"}, "</i></b>\n" ;
  501.                                 }
  502. #
  503. #        This is for testdrive, install, and demo images
  504. #
  505.                 if ($Platform{$ShortName} =~ /demo/ ) {
  506.                 print CATFILE "<img src=\"http://localhost:7999/SunSolutions/images/demo.gif\">";
  507.                 }
  508.                                 if ($Platform{$ShortName} =~ /testdrive/ ) { 
  509.                                 print CATFILE "<img src=\"http://localhost:7999/SunSolutions/images/testdrive.gif\">";
  510.                                 } 
  511.                                 if ($Platform{$ShortName} =~ /install/ ) { 
  512.                 print CATFILE "<img src=\"http://localhost:7999/SunSolutions/images/install.gif\">";
  513.                                 } 
  514.                 print CATFILE "\n";
  515.  
  516.                 }
  517.          
  518.         
  519.             $~ = "CATEND";
  520.             write CATFILE;
  521.             close (CATFILE);
  522.         
  523.             if ($Special{$catword} eq "") {
  524.                 $AppWidth="596"; 
  525.                  $AppHeight="75";
  526.             } else {
  527.                 @tmp=split(/,/,$Special{$catword});
  528.                                 $AppWidth=@tmp[0]; 
  529.                 $AppHeight=@tmp[1];
  530.             } 
  531.                 
  532.                         #&PrintHtml("<DD>", "\ttest $AppWidth $AppHeight $Special{$catword} $catword\n", "<BR>");
  533.  
  534.             select(CATHEADFILE);
  535.             $~ = "CATHEADERBEGIN";
  536.             write CATHEADFILE;
  537.                 $GI = &getField($MainCat{$catword}, "2");
  538.         print CATHEADFILE "<IMG border=0 SRC=\"$DIR_IMAGES/$GI\"  alt=\"\" USEMAP=#banner ismap>";
  539.         #if ($catword ne "companies") {
  540.         #    print CATHEADFILE "<AREA SHAPE=\"RECT\" HREF=\"?DEST=companies\" COORDS=27,4,96,44>\n";
  541.         #} else {
  542.         print CATHEADFILE "<AREA SHAPE=\"RECT\" HREF=\"?DEST=companies\" COORDS=7,12,69,40>\n";
  543.         #}
  544.         print CATHEADFILE "<AREA SHAPE=\"RECT\" HREF=\"?DEST=products\" COORDS=3,48,69,80>\n";
  545.         #if ($catword ne "Hardware") {
  546.         #print CATHEADFILE "<AREA SHAPE=\"RECT\" HREF=\"?DEST=Hardware\" COORDS=96,0,165,40>\n";
  547.         #} else {
  548.         print CATHEADFILE "<AREA SHAPE=\"RECT\" HREF=\"http:\/\/localhost:7999\/SunSolutions\/docs\/info\/Info.html\" COORDS=73,6,142,46>\n";
  549.         #}
  550.         #if ($catword ne "Services" && $catword ne "companies" && $catword ne "internet") {
  551.             #        print CATHEADFILE "<AREA SHAPE=\"RECT\" HREF=\"?DEST=Services\" COORDS=96,38,165,78>\n";
  552.         #} else {
  553.             print CATHEADFILE "<AREA SHAPE=\"RECT\" HREF=\"http:\/\/localhost:7999\/SunSolutions\/index.html\" COORDS=72,40,143,85>\n";
  554.         #}
  555.                 #if ($catword eq "Sun") {
  556.         #    print CATHEADFILE "<AREA SHAPE=\"RECT\" HREF=\"?DEST=Sun_Software&SIZE=35\" COORDS=198,85,366,170>\n";
  557.         #    print CATHEADFILE "<AREA SHAPE=\"RECT\" HREF=\"?DEST=Sun_Hardware&SIZE=35\" COORDS=401,85,575,170>\n";
  558.         #}
  559.         #if ($catword eq "internet") {
  560.         #print CATHEADFILE "<AREA SHAPE=\"RECT\" HREF=\"../.Internet/cover.htm\" COORDS=180,0,596,166>\n";
  561.         #} else {
  562.         #print CATHEADFILE "<AREA SHAPE=\"RECT\" HREF=\"http://localhost:7999/SunSolutions/index.html\" COORDS=198,0,596,62>\n";
  563. #}
  564.         $~ = "CATHEADERMIDDLE";
  565.         write CATHEADFILE;
  566.  
  567.                 #print CATHEADFILE `cat $Header{$catword}`;
  568.             unless (&getField($MainCat{$Cat}, "1") eq "") {
  569.  
  570. #Commented out on 1/20/97 Jason for March 97
  571.  
  572.             }
  573. #Comment STOP Here Jason
  574.     
  575.             #@Letters = ("A", "B", "C", "D", "E", "F", "G", "H", "I", "J", "K", "L", "M", "N", "O", "P", "Q", "R", "S", "T", "U", "V", "W", "X", "Y", "Z");
  576.             if (@Letters > 7) {
  577.                 print CATHEADFILE "<B>Go to:  ";
  578.                 foreach $letter (@Letters) {
  579.                         $CG = &getField($MainCat{$Cat}, "1");
  580.                     print CATHEADFILE "<A HREF=\"?DEST=$catword&L=$letter" . ($CG eq ""? "" : "&SIZE=180") . "\">$letter</A>\n";
  581.                 }
  582.             }
  583. #Added by Jason 1/20/97 for March 97 Category Owners
  584.  
  585.             if ($catword eq "financial") {
  586.             print CATHEADFILE "<center> <MAP NAME=\"ad\"> <img border=0 src=\"/SCO/ad/ad.gif\" alt=\"\" usemap=#ad ismap> <AREA SHAPE=RECT COORDS=\"0,0,150,30\" HREF=\"mailto:catalyst@sco.com\"> <AREA SHAPE=default HREF=\"http://www.vision.sco.com/sun.html\"> </MAP>";
  587.             }
  588.  
  589.             if ($catword eq "info_mgt") {
  590.                         print CATHEADFILE "<center> <MAP NAME=\"ad\"> <img border=0 src=\"/Informix/ad/ad.gif\" alt=\"\" usemap=#ad ismap> <AREA SHAPE=default HREF=\"http://www.informix.com\"> </MAP>";
  591.             }
  592.  
  593.             if ($catword eq "intsrcheng") {
  594.                         print CATHEADFILE "<center> <MAP NAME=\"ad\"> <img border=0 src=\"/Excite/ad/ad.gif\" alt=\"\" usemap=#ad ismap> <AREA SHAPE=default HREF=\"http://www.excite.com/\"> </MAP>";
  595.                         }
  596.  
  597.             $~ = "CATHEADEREND";
  598.             write CATHEADFILE;
  599.             close (CATHEADFILE);
  600.      
  601.             &PrintHtml("<DD>", "\t$catword category page created.\n", "<BR>");
  602.  
  603.             select($old);
  604.         } else {
  605.             die "\nERROR: Cannot write $CATFILENAME or $CATHEADFILENAME!\nTry to be superuser!\n\n";
  606.         }
  607.     }
  608. }
  609.  
  610. ##############################################################################
  611. # CreateReport:
  612. ##############################################################################
  613. sub CreateReport
  614. {
  615.     $TotalSize = 0;
  616.     foreach $ShortName (sort FilteredSortComp keys(%Companies)) {
  617.         #$ShortName = $RevComp{$Comp};    
  618.         $Comp = $Companies{$ShortName};
  619.         &PrintHtml("<B>", "$Comp:\n", "</B><BR>");
  620.         &PrintHtml("<DD>", "\tProduct1: " . $Products{$ShortName . "1"} . "\n", "<BR>");
  621.         if ($Products{$ShortName . "2"} ne "") {
  622.             &PrintHtml("<DD>", "\tProduct2: " . $Products{$ShortName . "2"} . "\n", "<BR>");
  623.         }
  624.         if ($Products{$ShortName . "3"} ne "") {
  625.             &PrintHtml("<DD>", "\tProduct3: " . $Products{$ShortName . "3"} . "\n", "<BR>");
  626.         }
  627.         if ($Products{$ShortName . "4"} ne "") {
  628.             &PrintHtml("<DD>", "\tProduct4: " . $Products{$ShortName . "4"} . "\n", "<BR>");
  629.         }
  630.         if ($Products{$ShortName . "5"} ne "") {
  631.             &PrintHtml("<DD>", "\tProduct5: " . $Products{$ShortName . "5"} . "\n", "<BR>");
  632.         }
  633.         $Size = `du -ks $PRODUCTS_DIR/$ShortName`;
  634.         chop $Size;
  635.         $Size =~ s/(\d*).*/\1/;
  636.         &PrintHtml("<DD>", "\tTotal size: $Size Kb\n", "<BR>");
  637.         $TotalSize += $Size;
  638.         if ( $Platform{$ShortName} =~ /demo|testdrive|install/) {
  639.             &PrintHtml("<DD>", "\t", "");
  640.             if ($Platform{$ShortName} =~ /demo/) {
  641.                 &PrintHtml("", "Slide-show, ", "");
  642.             }
  643.             if ($Platform{$ShortName} =~ /testdrive/) {
  644.                 &PrintHtml("", "Demo version, ", "");
  645.             }
  646.             if ($Platform{$ShortName} =~ /install/) {
  647.                 &PrintHtml("", "Unlockable version, ", "");
  648.             }
  649.             &PrintHtml("", "\n", "<BR>");
  650.         }
  651.     }
  652.     &PrintHtml("<BR><BR>", "\n\nTotal size for all companies: $TotalSize Kb\n", "<BR>");
  653.     $Size = `du -ks $PRODUCTS_DIR/$ShortName`;
  654.     chop $Size;
  655.     $Size =~ s/(\d*).*/\1/;
  656.     &PrintHtml("", "Total size for .products: $Size Kb\n", "<BR>");
  657. }
  658.  
  659. ##############################################################################
  660. # CreateApplet:
  661. ##############################################################################
  662. sub CreateApplet
  663. {
  664.     &PrintHtml("", "\nBuilding Control bar applets ...\n", "<BR>");
  665.     $TmpFile = "/tmp/tmpupdateapplet";
  666.     foreach $Comp (sort keys(%Companies)) {
  667.         $FRAMEFILENAME = "$PRODUCTS_DIR/$Comp/$FRAMEBASICNAME";
  668.         if (open (FRAMEFILE, "> $FRAMEFILENAME")) {
  669.             print FRAMEFILE "<html> <head>\n<title>Sun Solutions October 1996: $Companies{$Comp}</title>\n</head>\n<FRAMESET ROWS=\"50,*\">\n<FRAME SCROLLING=\"no\" TARGET=\"_top\" NAME=\"menu\" NORESIZE SRC=\"SunSolutions.head.html\">\n<FRAME SCROLLING=\"yes\" NAME=\"content\" NORESIZE MARGINHEIGHT=4 SRC=\"$HomePageName{$Comp}\">\n</BODY> </NOFRAME> </FRAMESET> </HTML>\n";
  670.             close(FRAMEFILE);
  671.         } else {
  672.             &PrintHtml("", "ERROR: Couldn't write $FRAMEFILENAME\n", "<BR>");
  673.         }
  674.  
  675.         $HEADFILENAME = "$PRODUCTS_DIR/$Comp/$HEADBASICNAME";
  676.         if (open (HEADFILE, "> $HEADFILENAME")) {
  677.             print HEADFILE "<html> <head>\n<title>Sun Solutions October 1996</title>\n</head>\n<BODY BACKGROUND=../SunSolutions/images/back3.gif>\n<CENTER>\n<applet code=ImageMap.class width=596 height=36>\n<param name=highlight value=\"brighter60\">";
  678.             
  679.             $TestGif = 0;
  680.             if ($Platform{$Comp} =~ /demo/) {
  681.                 $TestGif ++;
  682.             }
  683.             if ($Platform{$Comp} =~ /testdrive/) {
  684.                 $TestGif += 2;
  685.             }
  686.             if ($Platform{$Comp} =~ /install/) {
  687.                 $TestGif += 4;
  688.             }
  689.             @BarFileNames = ("none", "rd", "td", "tdrd", "ts", "tsrd", "tdts", "samplebar");
  690.             print HEADFILE "<param name=img value=\"$PRODUCTS_DIR/SunSolutions/images/$BarFileNames[$TestGif].gif\">\n";
  691.  
  692.             print HEADFILE "<param name=area1 value=\"HrefButtonArea,0,0,80,35,http://localhost:7999/cgi-bin/show.bat/?DEST=companies\" >\n";
  693.             print HEADFILE "<param name=area2 value=\"HrefButtonArea,81,0,84,35,http://localhost:7999/SunSolutions/search.html\" >\n";
  694.             print HEADFILE "<param name=area3 value=\"HrefButtonArea,164,0,83,35,http://localhost:7999/SunSolutions/docs/info/Info.html\" >\n";
  695.             print HEADFILE "<param name=area4 value=\"HrefButtonArea,267,0,85,35,http://localhost:7999/cgi-bin/req_more_info.pl?$Comp\" >\n";
  696.  
  697.             $Area = 5;
  698.             if ($Platform{$Comp} =~ /demo/) {
  699.                 print HEADFILE "<param name=area$Area value=\"HrefButtonArea,350,0,83,35,http://localhost:7999/$Comp/_install/install_show.sh\">\n";
  700.                 $Area ++;
  701.             }
  702.             if ($Platform{$Comp} =~ /testdrive/) {
  703.                 print HEADFILE "<param name=area$Area value=\"HrefButtonArea,434,0,81,35,http://localhost:7999/$Comp/_install/run.sh\">\n";
  704.                 $Area ++;
  705.             }
  706.             if ($Platform{$Comp} =~ /install/) {
  707.                 print HEADFILE "<param name=area$Area value=\"HrefButtonArea,515,0,83,35,http://localhost:7999/$Comp/_install/install.sh\">\n";
  708.             }
  709.             
  710.             print HEADFILE "</applet> </CENTER> </BODY> </HTML>\n";
  711.  
  712.  
  713.             close(HEADFILE);
  714.         } else {
  715.             &PrintHtml("", "ERROR: Couldn't write $HEADFILENAME\n", "<BR>");
  716.         }
  717.  
  718.              #$HOMEFILENAME = "../$Comp/" . $HomePageName{$ShortDir};
  719.         #if (open (HOMEFILE, "$HOMEFILENAME")) {
  720.             #open (TMPFILE, "$TmpFile");
  721.             #while (<TMPFILE>) {
  722.                 #$Line = $_;
  723.                 #if ($Line =~ /^<applet class=cdbar/i) {
  724.                     #while (! <HOMEFILE> =~ /^<\/applet>/i) {
  725.                     #}
  726.                     #$TestGif = 0;
  727.                     #if ($Platform{$Comp} =~ /demo/) {
  728.                         #$TestGif ++;
  729.                     #}
  730.                     #if ($Platform{$Comp} =~ /testdrive/) {
  731.                         #$TestGif ++;
  732.                     #}
  733.                     #if ($Platform{$Comp} =~ /install/) {
  734.                         #$TestGif ++;
  735.                     #}
  736.                     #print TMPFILE "<app class=CDbar img=\"http://localhost:7999/SunSolutions/images/none.gif";
  737.                     #print TMPFILE "highlight=brighter60";
  738. ##            print "area1=HrefButtonArea,0,0,80,35,http://localhost:7999/SunSolutions/index.html" >> applet
  739. ##            print "area2=HrefButtonArea,81,0,84,35,http://localhost:7999/.categories/companies.html" >> applet
  740. ##            print "area3=HrefButtonArea,164,0,83,35,http://localhost:7999/SunSolutions/docs/info/Info.html" >> applet
  741. ##            print "area4=HrefButtonArea,267,0,85,35,http://localhost:7999/DEV/disabled.html" >> applet
  742. ##            print ">" >> applet
  743. ##                        breaksw    
  744. ## 
  745.                     #next;
  746.                 #}
  747.                 #print TMPFILE $Line;
  748.             #}
  749.         #}
  750.         #rename($TmpFile, $HOMEFILENAME);
  751.     }
  752.     &PrintHtml("", "\tControl bar applets built...\n", "<BR>");
  753. }
  754. ###############################################################################
  755. ## CreateNames
  756. ###############################################################################
  757. sub CreateNames
  758. {
  759. open (REALNAMES, "> $PRODUCTS_DIR/.bin/real_names.txt");
  760.    write REALNAMES;
  761.     foreach $comp (keys(%Companies)) {
  762.         print REALNAMES "$comp\t$Companies{$comp}\n";
  763.     }
  764. # this is for directories without _info files
  765.    print REALNAMES "SunProducts\tSun Products\n";
  766.    print REALNAMES ".Internet\tInternet Articles\n";
  767. close(REALNAMES);
  768. }
  769.  
  770. ###############################################################################
  771. ## CreateProduct
  772. ###############################################################################
  773. sub CreateProduct
  774. {
  775.     &PrintHtml("<BR>", "\nCreating Products page...\n", "<BR>");
  776.  
  777.          $PRODFILENAME = "$CAT_DIR/products.html";
  778.          $PRODHEADFILENAME = "$CAT_DIR/products.head.html";
  779.     if (open (PRODFILE, "> $PRODFILENAME") && open(PRODHEADFILE, "> $PRODHEADFILENAME")) {
  780.         $old = select(PRODFILE);
  781.  
  782.         $~ = "CATBEGIN";
  783.         write PRODFILE;
  784.         $Letter = "0";
  785.         @Letters = ();
  786.         foreach $Prod (sort FilteredSort keys(%RevProd)) {
  787.             $ShortName = substr($RevProd{$Prod}, 0, length($RevProd{$Prod}) - 1);    
  788.             
  789.             #print STDOUT "        Prod=$Prod, ShortName=$ShortName.\n";
  790.             $ProdAb = $Prod;
  791.             $ProdAb =~ tr/a-z/A-Z/;
  792.             $ProdAb =~ s/^THE //;
  793.             $ProdAb =~ s/^\.//;
  794.             $ProdAb =~ s/^[     ]*//;
  795.             unless ($ProdAb =~ /^$Letter/) {
  796.                 $Letter = substr($ProdAb, 0, 1);
  797.                 print PRODFILE "<DT><A NAME=\"$Letter\"><B>$Letter</B></A>";
  798.                 push (@Letters, $Letter);
  799.             }
  800.  
  801.                 #print PRODFILE "<DD><A HREF=http://localhost:7999/$ShortName/$HomePageName{$ShortName}><B>$Prod</B></A> <I>from</I> <B>$Companies{$ShortName}</B>\n";
  802.                 print PRODFILE "<DD><A HREF=http://localhost:7999/$ShortName/$FRAMEBASICNAME><B>$Prod</B></A> <I>from</I> <B>$Companies{$ShortName}</B>";
  803. #
  804. #     this is for testdrive, install, demo icons
  805. #
  806.                                 if ($Platform{$ShortName} =~ /demo/ ) {
  807.                                 print PRODFILE "<img src=\"http://localhost:7999/SunSolutions/images/demo.gif\">";
  808.                                 }
  809.                                 if ($Platform{$ShortName} =~ /testdrive/ ) {
  810.                                 print PRODFILE "<img src=\"http://localhost:7999/SunSolutions/images/testdrive.gif\">";
  811.                                 }
  812.                                 if ($Platform{$ShortName} =~ /install/ ) {
  813.                                 print PRODFILE "<img src=\"http://localhost:7999/SunSolutions/images/install.gif\">";
  814.                                 }
  815.                                 print PRODFILE "\n";
  816.  
  817.             }
  818.      
  819.         $~ = "CATEND";
  820.         write PRODFILE;
  821.         close (PRODFILE);
  822.  
  823.         select(PRODHEADFILE);
  824.         $~ = "CATHEADERBEGIN";
  825.         write PRODHEADFILE;
  826.                 print PRODHEADFILE "<IMG border=0 SRC=\"$DIR_IMAGES/products.gif\"  alt=\"\" USEMAP=#banner ismap>";
  827.         print PRODHEADFILE "<MAP Name=\"banner\">";
  828.                 print PRODHEADFILE "<AREA SHAPE=\"RECT\" HREF=\"?DEST=companies\" COORDS=7,12,69,40>\n";
  829.                 print PRODHEADFILE "<AREA SHAPE=\"RECT\" HREF=\"?DEST=products\" COORDS=3,48,69,80>\n";
  830.                 print PRODHEADFILE "<AREA SHAPE=\"RECT\" HREF=\"http:\/\/localhost:7999\/SunSolutions\/docs\/info\/Info.html\" COORDS=73,6,142,46>\n";
  831.                 print PRODHEADFILE "<AREA SHAPE=\"RECT\" HREF=\"http:\/\/localhost:7999\/SunSolutions\/index.html\" COORDS=72,40,143,85>\n";
  832.                 print PRODHEADFILE "<AREA SHAPE=\"RECT\" HREF=\"http://localhost:7999/SunSolutions/index.html\" COORDS=200,0,595,74>\n";
  833.  
  834.         print PRODHEADFILE "</MAP></td><tr><td><center>";
  835.  
  836.         #@Letters = ("A", "B", "C", "D", "E", "F", "G", "H", "I", "J", "K", "L", "M", "N", "O", "P", "Q", "R", "S", "T", "U", "V", "W", "X", "Y", "Z");
  837.         print PRODHEADFILE "<B><FONT size=\"4\"> Go to:\n";
  838.         foreach $letter (@Letters) {
  839. # below changed by Marc
  840.             #print PRODHEADFILE "<A HREF=\"?DEST=$catword&L=$letter\">$letter</A>\n";
  841.             print PRODHEADFILE "<A HREF=\"?DEST=products&L=$letter\">$letter</A>\n";
  842.         }
  843.         $~ = "CATHEADEREND";
  844.         write PRODHEADFILE;
  845.         close (PRODHEADFILE);
  846.  
  847.         &PrintHtml("<DD>", "\tproducts.html page created.\n", "<BR>");
  848.  
  849.         select($old);
  850.     }
  851. }
  852. ##############################################################################
  853. # MAIN PART: Decode the parameters and calls the correct subfunctions
  854. ##############################################################################
  855. #$arg0=$0
  856. #$DIR=$arg0:h
  857. #$ProgName=$arg0:t
  858.  
  859. #if ("X$DIR" == "X$ProgName") {
  860.     #$DIR='.'
  861. #}
  862.  
  863. #if (-e "./$ProgName") {
  864.     #$DIR=$cwd
  865. #}
  866.  
  867. #cd  $DIR
  868. #print `pwd`;
  869.  
  870. #
  871. # Create the category pages seen in the categories.txt file
  872. #
  873.  
  874. #foreach $en (sort keys %ENV) {
  875.     #print "$en = $ENV{$en}\n";
  876. #}
  877.  
  878.  
  879.     $CATS = "false";
  880.     $APPLETS = "false";
  881.     $COMP = "false";
  882.     $CHECK = "false";
  883.     $REPORT = "false";
  884.     $HTML_FORMAT = "false";
  885.     $PROD = "false";
  886.     $SOFT = "false";
  887.     $PLATFORM = "sparc";
  888.  
  889.     $DIR_IMAGES = "http://localhost:7999/SunSolutions/images/";
  890.     $PRODUCTS_DIR = "../";
  891.  
  892.     # parse command line arguements
  893.  
  894.     #print "Arg=@ARGV.\n";
  895.     @ARGREPORT = @ARGV;
  896.     if (@ARGV == 0) {
  897.         @ARGV=("-?");
  898.     }
  899.  
  900.         while ($ARGV[0] =~ /^-/) {
  901.             $_ = shift;
  902.             #print "Arg=$_.\n";
  903.             if (/^-cats$/) {
  904.                 $CATS = "true";
  905.             } elsif (/^-applets/) {
  906.                 $APPLETS = "true";
  907.             } elsif (/^-comp/) {
  908.                 $COMP = "true";
  909.             } elsif (/^-checkall/) {
  910.                 $CHECK = "true";
  911.                 $CHECKLINKS = "true";
  912.             } elsif (/^-checklinks/) {
  913.                 $CHECKLINKS = "true";
  914.             } elsif (/^-check/) {
  915.                 $CHECK = "true";
  916.             } elsif (/^-soft/) {
  917.                 $SOFT = "true";
  918.             } elsif (/^-report/) {
  919.                 $REPORT = "true";
  920.             } elsif (/^-html/) {
  921.                 $HTML_FORMAT = "true";
  922.                         } elsif (/^-names/) {
  923.                                 $NAMES = "true";
  924.             } elsif (/^-dir/) {
  925.                 $PRODUCTS_DIR = ($1 ? $1 : shift);
  926.                 unless (-s $PRODUCTS_DIR) {
  927.                     die "ERROR: $PRODUCTS_DIR is not a directory\n";
  928.                 }
  929.             } elsif (/^-prod/) {
  930.                 $PROD = "true";
  931.             } elsif (/^-all/) {
  932.                 $PROD = "true" ;
  933.                 $COMP = "true";
  934.                 $SOFT = "true";
  935.                 $APPLETS = "true";
  936.                 $CATS = "true";
  937.                 $NAMES = "true";
  938.             } elsif (/^-x86/) {
  939.                 $PLATFORM = x86;
  940.                 $SRC_DIR = "../../../x86.image";
  941.             } elsif (/^-[?Hh]/) {
  942.                 die "Usage: update.pl [ -cats | -applets | -soft | -prod | -all | -dir dirname | -x86  | -report | -html | -names | -check]\n\tall: = -cats -prod -applets\n\tapplets: creates an applet in the customer home page.\n\tcats: creates the category and company pages.\n\tcheck: check the _info file, and other things for errors.\n\tdir: gives the directory where the companies are located.\n\thtml: when -report is selected, creates an output in HTML format.\n\tnames: create list of company names keyed on directory name.\n\tprod: creates the product page.\n\treport: creates a report for all companies.\n\tsoft: creates the Software pages\n\tx86: for future usage.\n";
  943.             } else {
  944.                 die "Unrecognized switch: $_ (try -?)\n";
  945.             }
  946.         }
  947.  
  948. &PrintHtml("<HTML> <HEAD> <title>Sun Solutions - status on " . `date` . "</title> </HEAD> <BODY BACKGROUND=../SunSolutions/images/back3.gif bgcolor=\"#DDDDDD\"><H1>", "Sun Solutions - status on " . `date` . "\n", "</H1>");
  949.  
  950.  
  951. # check if root user
  952. if ( $ENV{"USER"} ne "root" ) {
  953.         &PrintHtml("", "WARNING: This program should be run as root user.\n", "<BR>");
  954.     }
  955.  
  956.  
  957.     if ($REPORT ne "true") {
  958.         $HostName = `hostname`;
  959.         chop $HostName;
  960.         &PrintHtml("", "\nUpdating Sun Solutions on $HostName:\n\n", "<BR>");
  961.     if (open (REPORTFILE, ">> $PRODUCTS_DIR/.update.txt")) {
  962.         $Date = `date`;
  963.         chop $Date;
  964.         print REPORTFILE "update by " . $ENV{"USER"} . " on $Date from $HostName\n\tparams: ";
  965.         while (@ARGREPORT) {
  966.             print REPORTFILE "$ARGREPORT[0], ";
  967.             shift @ARGREPORT;
  968.         }
  969.         print REPORTFILE "\n\n";
  970.         close (REPORTFILE);
  971.     } else {
  972.         &PrintHtml("", "WARNING: Cannot open $PRODUCTS_DIR/.update.txt\n", "<BR>");
  973.     }
  974. }
  975.  
  976. &InitCompInfo();
  977.  
  978. $CAT_DIR = "$PRODUCTS_DIR/.categories";
  979. $FRAMEBASICNAME = "SunSolutions.frame.html";
  980. $HEADBASICNAME = "SunSolutions.head.html";
  981. #print $CAT_DIR;
  982. if ( ! -d $CAT_DIR ) {
  983.     mkdir($CAT_DIR, 0777);
  984. }
  985.  
  986. if ( $CHECK eq "true" ) {
  987.     &CheckFiles();
  988. }
  989. if ( $NAMES eq "true" ) {
  990.         &CreateNames();  
  991. }
  992.  
  993.  
  994. if ( $CHECKLINKS eq "true" ) {
  995.     &CheckLinks();
  996. }
  997.  
  998. if ( $CATS eq "true" ) {
  999.     &CreateCat();
  1000. }
  1001.  
  1002. if ( $SOFT eq "true" ) {
  1003.     &CreateSoft();
  1004. }
  1005.  
  1006. #
  1007. # Get all SunSolutions menu bar components and put in file 
  1008. # for building of front page applet 
  1009. #
  1010. if ( $APPLETS eq "true" ) {
  1011.     &CreateApplet();
  1012. }
  1013.  
  1014. if ( $PROD eq "true" ) {
  1015.     &CreateProduct();
  1016. }
  1017.  
  1018. if ( $REPORT eq "true" ) {
  1019.     &CreateReport();
  1020. }
  1021.  
  1022. #
  1023. # Compile list of companies, place in 'companies' file
  1024. #
  1025. #if ( $COMP eq "true" ) {
  1026.     #&CreateComp();
  1027. #}
  1028.  
  1029. #
  1030. # Compile list of products, place in 'products' file
  1031. #
  1032.  
  1033. #print "\n\n\nPress <RETURN> to close the window and test your submission..\n.";
  1034. #read answer;
  1035.  
  1036. ################################################################################
  1037. # Define FORMATS (no more code)
  1038. ################################################################################
  1039. format CATHEADERBEGIN =
  1040. <html>
  1041. <body  BGCOLOR="#8c8cde" link=#33ff00 vlink=#33ff00 >
  1042. <BASE TARGET="_top" HREF="http://localhost:7999/cgi-bin/show.bat/">
  1043. <center>
  1044. <form method="get"  ACTION="http://localhost:7999/cgi-bin/brandnewwais.pl/wais_SunSolutions">
  1045. <table border = 3><td>
  1046. <MAP Name="banner">
  1047. .
  1048.  
  1049. format CATHEADERMIDDLE =
  1050. </MAP></td><tr><td><center>
  1051. <B><FONT size="4">
  1052. #<B>Go to:  </b>
  1053. .
  1054.  
  1055. format CATHEADEREND =
  1056. #<br> Search: <input type="text" name="isindex" size="12" >
  1057. </font>
  1058. </td><tr></table>
  1059. </form>
  1060. </center>
  1061. </body>
  1062. </html>
  1063. .
  1064.  
  1065. format CATBEGIN =
  1066. <HTML>
  1067.         <!-- header section-->
  1068. <HEAD>
  1069. <title>Sun Solutions - October</title>
  1070. </HEAD>
  1071.         <!-- document body-->
  1072. <BODY  BACKGROUND=../SunSolutions/images/back3.gif bgcolor="#DDDDDD">
  1073. <BASE TARGET="_top">
  1074. <DL>
  1075. #<hr>
  1076. #<p>
  1077. .
  1078.  
  1079. format CATEND =
  1080. </B></B><DT>
  1081. <hr>
  1082. </BODY>
  1083. </HTML>
  1084. .
  1085.  
  1086. format SOFTWAREHEAD =
  1087. <HTML>
  1088.         <!-- header section-->
  1089. <HEAD>
  1090. <TITLE>Sun Solutions - Software Categories</TITLE>
  1091. </HEAD>
  1092.         <!-- document body-->
  1093. <BODY BGCOLOR="8c8cde" link=#33ff00 vlink=#33ff00>
  1094. <CENTER>
  1095. <BASE TARGET="_top" HREF="http://localhost:7999/cgi-bin/show.bat/">
  1096. <form method="get"  ACTION="http://localhost:7999/cgi-bin/brandnewwais.pl/wais_SunSolutions">
  1097. <table border = 3><td>
  1098. <IMG border=0 SRC="http://localhost:7999/SunSolutions/images/software.gif" alt="" USEMAP=#banner ismap>
  1099. <MAP Name="banner">
  1100. <AREA SHAPE="RECT" HREF="?DEST=companies" COORDS=7,12,69,40>
  1101. <AREA SHAPE="RECT" HREF="?DEST=products" COORDS=3,48,69,80>
  1102. <AREA SHAPE="RECT" HREF="http://localhost:7999/SunSolutions/docs/info/Info.html" COORDS=73,6,142,46>
  1103. <AREA SHAPE="RECT" HREF="http://localhost:7999/SunSolutions/index.html" COORDS=72,40,143,85>
  1104. <AREA SHAPE="RECT" HREF="http://localhost:7999/SunSolutions/index.html" COORDS=200,0,595,74>
  1105. </MAP>
  1106. </TD><TR><TD>
  1107. <CENTER>
  1108. <FONT size="4">
  1109. #<br>Search: <input type="text" name="isindex" size="12" >
  1110. </font>
  1111. </CENTER>
  1112. </td><tr></table>
  1113. </CENTER>
  1114. </form>
  1115. </BODY>
  1116. </HTML>
  1117. .
  1118. ##############################################################################
  1119. format FRAMEHEADER =
  1120. Content-type: text/html
  1121.  
  1122.  
  1123.  
  1124. <html>
  1125. <head>
  1126. <title>Sun Solutions October 1996</title>
  1127. </head>
  1128. <FRAMESET ROWS="20,80">
  1129. #$size
  1130. .
  1131. ##############################################################################
  1132. format FRAMEFOOTER =
  1133. <BODY BACKGROUND="icons/bkgrnds/homebg.gif" body  BACKGROUND=../SunSolutions/images/back3.gif bgcolor=black text=#ffffff link=#dddddd alink=#ffff00 vlink=#bbbbbb>
  1134.  
  1135. <FONT SIZE=-1>Copyright \0511995 <B><A
  1136.  
  1137. </BODY>
  1138. </NOFRAME>
  1139. </FRAMESET>
  1140. </HTML>
  1141. .
  1142.